// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	11/19/2014 8:50:50 PM				
// -----------------------------

#ifndef _SceneLoader_h
#define _SceneLoader_h

#include "Scene.h"

class Thread;

class SceneLoader : public Scene
{
public:
	SceneLoader(const TString& Name, Scene* lpSceneToLoad);
	virtual ~SceneLoader();

	virtual void	OnActivate(Application* lpApp);
	virtual void	OnDeactivate(Application* lpApp);
	virtual void	OnGUI(Application* lpApp, IRenderTarget2D* lpTarget);

	virtual void	Load(Application* lpApp);
	virtual void	Update(Application* lpApp, Float deltaTime);

private:

	static void		ThreadCallback(Thread* lpThread, void* lpArgs);

	Thread*	m_lpLoadingThread;
	Scene*	m_lpSceneToLoad;

	Float	m_Rotation;
	Float	m_RotationSpeed;

	SceneLoader(const SceneLoader& refSceneLoader);
	SceneLoader& operator=(const SceneLoader& refSceneLoader);
};

#endif